package com.simpletour.qa.gateway.util;

/**
 * URL 正则替换工具
 * <p>定义db正则替换规则</p>
 * @author zhaohw
 * @date 2018-07-02 10:14
 */
public enum UrlRegexRuleEnum {

    /**
     * 数字
     */
    INT("\\{d\\}","[\\\\\\d]+"),

    /**
     * 字母数字下划线
     */
    LETTER_AND_INT("\\{w\\}","[\\\\\\w]+"),

    /**
     * 任意字符
     */
    ALL("\\{\\*\\}","[\\\\\\s\\\\\\S]+");

    /**
     * DB中的格式
     */
    private String dbFormat;
    /**
     * 实际正则
     */
    private String regex;

    UrlRegexRuleEnum(String dbFormat, String regex) {
        this.dbFormat = dbFormat;
        this.regex = regex;
    }

    /**
     *  DB存储至Regex的转换
     * @param formatUrl DB存储格式
     * @return
     */
    public static String getOriginalRegex(String formatUrl){
        return formatUrl.replaceAll(INT.dbFormat,INT.regex)
                .replaceAll(LETTER_AND_INT.dbFormat,LETTER_AND_INT.regex)
               .replaceAll(ALL.dbFormat,ALL.regex);
    }
}
